package com.xiaochang.em.controller;

import com.xiaochang.em.entity.Star;
import com.xiaochang.em.service.PmmlPredictService;
import com.xiaochang.em.service.StarService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;


@RestController
@RequestMapping("/api/model")
public class ModelController {

    @Resource
    private StarService starService;

    // 定义一个接口，从http中接受RequestBody中的字符串，这是一个json的字符串，用fastjson解析成json后直接调用预测函数PmmlPredict.predict进行预测
    @RequestMapping(value="/predict", method= RequestMethod.POST, produces="application/json;charset=UTF-8")
    @ResponseBody
    public Star getModel(Star star) {
//        // 将字符串解析成json
//        JSONObject json = JSONObject.parseObject(feature);

        // 调用PmmlPredict.initModel()
        try {
            PmmlPredictService.initModel();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // 预测
        double y = PmmlPredictService.predict(star);

        star.setRv(y);

        //将预测结果保存在数据库中
        starService.save(star);
        // 返回
        return star;
    }

}
